package com.cowmooed.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cowmooed.entity.GenerationRecords;
import com.cowmooed.dto.GenerationRecordsDTO;
import com.cowmooed.dto.GenerationRecordsPageQueryDTO;
import com.cowmooed.entity.PageResult;
import com.cowmooed.vo.GenerationRecordsQueryVO;

import java.util.List;

/**
 * 生成记录服务接口
 */
public interface GenerationRecordsService extends IService<GenerationRecords> {
    
    /**
     * 分页查询当前登录用户的模型记录
     * @param generationRecordsPageQueryDTO 分页查询参数
     * @return 分页查询结果
     */
    PageResult pageQueryUserRecords(GenerationRecordsPageQueryDTO generationRecordsPageQueryDTO);

    /**
     * 根据userId、taskId和requestId更新记录
     * @param generationRecordsDTO 更新数据
     * @return 是否更新成功
     */
    void updateRecordByUserIdAndTaskIdAndRequestId(GenerationRecordsDTO generationRecordsDTO);

    /**
 * 批量根据userId、taskId和requestId更新记录
 * @param generationRecordsDTOList 更新数据列表
 * @return 批量更新结果，包含成功数量和失败列表
 */
void batchUpdateRecordsByUserIdAndTaskIdAndRequestId(List<GenerationRecordsDTO> generationRecordsDTOList);

/**
 * 批量根据记录ID删除生成记录
 * @param ids 记录ID列表
 */
void batchDeleteRecordsByIds(List<Long> ids);
}